Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.07.2012, 17:02
Интересующийся
Отправить личное сообщение для Kiriru Посмотреть профиль Найти все сообщения от Kiriru
 
Регистрация: 02.07.2012
Сообщений: 12

Проверка наличия пользователя в БД
Народ, пожалуйста, помогите!
Есть функция SignUp, проверяющая правильность заполнения формы регистрации и файл bd1.php, проверяющий наличие пользователя в БД и регистрирующий. Не могу связать их воедино, уже голову сломал.
function SignUp() {
    email = $('#email').val();
    pass = $('#password').val();
    passAgain = $('#passwordAgain').val();
    if (!ValidEmail(email)) {
        ShowError(0);
    }
    else {
        if ((pass != "") && (pass == passAgain)) {
            ShowIndicator();
            if (!check(email)){
			    HideIndicator();
                //Register User
                HideError();
            }
        } else {
            HideIndicator();
            ShowError(1);
        }
    }
}


function check(email){
	var email = document.getElementById('email').value;
    var password = document.getElementById('password').value;
	var param = "text=" + document.form.text.value;
    var xmlhttp = getXmlHttp()
    xmlhttp.open('POST', 'bd1.php', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if(xmlhttp.status == 200) {
                var oldDiv = document.getElementById('loginBlock');
                var newDiv = document.createElement('div');
                newDiv.id = 'my-id';
                newDiv.innerHTML = xmlhttp.responseText;
                oldDiv.appendChild(newDiv);
             }
        }
    };
    xmlhttp.send(param);
}


<?php

// Данные для mysql сервера
$dbhost = "localhost"; // Хост
$dbuser = "root"; // Имя пользователя
$dbpassword = "8888888"; // Пароль
$dbname = "mysql"; // Имя базы данных

$email =($_POST['email']);
$password =($_POST['password']);


// Подключаемся к mysql серверу
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
if ( !$link )
   die ("Невозможно подключение к MySQL");

// Выбираем нашу базу данных
mysql_select_db($dbname, $link) or die ("Невозможно открыть $db");

$email = iconv('UTF-8', 'windows-1251', $email);
$email = mysql_real_escape_string($email);
$query = mysql_query("SELECT * FROM `users` WHERE email='$email'");
if (mysql_num_rows($query) >= 1) {
    ShowError(1);
}
else
{$query = "INSERT INTO `users`(`email`, `password`) VALUES('".$email."', '".$password."')";


mysql_query($query);
}

// Закрываем соединение
mysql_close($link);

?>

Последний раз редактировалось Kiriru, 06.07.2012 в 18:10.
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2012, 12:03
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

читать такой код без форматирования - просто пиздец.
и не надо забывать что это javascript-форум, а не php.
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2012, 12:08
Интересующийся
Отправить личное сообщение для Kiriru Посмотреть профиль Найти все сообщения от Kiriru
 
Регистрация: 02.07.2012
Сообщений: 12

Сорри, но не знаю, как правильно выложить.
И проблема не в пхп, а в эйджаксе.
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2012, 12:21
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Kiriru,
Откройте страницу в браузере - contrl+U - Файл - сохранить как - txt - cохраняете на рабочий стол - открываете в блокноте - вставляете сюда по кнопке



Последний раз редактировалось Deff, 03.07.2012 в 12:25.
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2012, 18:10
Интересующийся
Отправить личное сообщение для Kiriru Посмотреть профиль Найти все сообщения от Kiriru
 
Регистрация: 02.07.2012
Сообщений: 12

Ну что, блин, никто не поможет, что ли?
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2012, 11:26
Аватар для cmd
cmd cmd вне форума
Профессор
Отправить личное сообщение для cmd Посмотреть профиль Найти все сообщения от cmd
 
Регистрация: 19.03.2011
Сообщений: 177

Не думали воспользоваться какой-нибудь js библиотекой для ajax-запроса (jquery, prototype, mootools)? Суровых парней, которые пишут свои ajax-запросы на чистом JS даже тут не так много.
__________________
Cogito, ergo sum
Ответить с цитированием
  #7 (permalink)  
Старый 07.07.2012, 12:01
Интересующийся
Отправить личное сообщение для Kiriru Посмотреть профиль Найти все сообщения от Kiriru
 
Регистрация: 02.07.2012
Сообщений: 12

Да, уже разобрался с запросом))
function check(email) {
    var email = document.getElementById("email").value; // Считываем значение a
    var password = document.getElementById("password").value; // Считываем значение b
    var xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP
    xmlhttp.open('POST', 'bd1.php', true); // Открываем асинхронное соединение
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем кодировку
    xmlhttp.send("email=" + encodeURIComponent(email) + "&password=" + encodeURIComponent(password)); // Отправляем POST-запрос
    xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера
      if (xmlhttp.readyState == 4) { // Ответ пришёл
        if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо)
          document.getElementById("id").innerHTML = xmlhttp.responseText; // Выводим ответ сервера
        }
      }
    }
  }

Единственное, не могу сообразить, как вывести ошибку, что пользователь уже зарегистрирован, но это технические мелочи)
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2012, 21:48
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Вы посылаете запрос и получаете ответ. Так вот если код ответа, например, не 200, то и выводите свою ошибку.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2012, 12:21
Интересующийся
Отправить личное сообщение для Kiriru Посмотреть профиль Найти все сообщения от Kiriru
 
Регистрация: 02.07.2012
Сообщений: 12

Сообщение от SkyLight Посмотреть сообщение
Вы посылаете запрос и получаете ответ. Так вот если код ответа, например, не 200, то и выводите свою ошибку.
Спасибо большое!)) Если б вы еще подсказали, как перенаправить пользователя на страницу, было б вообще круто. А то стандартные методы, типа header("Location: user.html"), у меня не работают.

Последний раз редактировалось Kiriru, 10.07.2012 в 16:05.
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2012, 15:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Kiriru
стандартные методы, типа header("Location: user.html") у меня не работают.
<head>
<meta http-equiv="refresh" content="1;URL=http://user.html" />
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка наличия определенного класса из нескольких shaltay jQuery 1 20.10.2011 20:14
Проверка наличия текста в поле формы Glook jQuery 6 16.07.2010 19:46
проверка наличия jQuery uncher4 jQuery 5 06.01.2010 15:00
Проверка имени пользователя при вводе st1512 AJAX и COMET 1 07.09.2009 09:58
Проверка текущего пользователя на повторный вход soniclord AJAX и COMET 3 14.02.2009 16:09